package com.kuang.dao;

import com.kuang.pojo.Blog;
import com.kuang.pojo.BlogTag;
import com.kuang.pojo.VoTag;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface BlogTagMapper {
    public int insertBlogTag(@Param("blogid") Integer blogid, @Param("tagid") Integer tagid);

    public int deleteByBlogId(Integer blogid);

    // 通过博客id 查出中间表的一条或多条记录 再查出 标签表对应的名字
    public List<BlogTag> selectBlogTagByBlogId(Integer id);


    // 查出所有中间表的记录
    public List<BlogTag> selectAllBlogTag();

//    修改中间表的记录，，一篇博客对应的标签修改，那么中间表中的对应的那篇博客的所有标签需要修改
//   废弃方法，考虑到修改博客标签的时候 会有增加或减少的情况 废弃此方法！！
//    public int updateBlogTagById(@Param("id") Integer id, @Param("tagid") Integer tagid);

    //    要修改 博客标签中间表的记录 首先要查出所有博客id相同的所有记录 找到 对应的id 再根据id进行修改！
    public List<BlogTag> selectIdByBlogId(Blog blog);


//    public int insert


    //     删除标签表对应的记录，那么要将中间表中的标签字段设置为0代表没有
    public int updateBlogIdByTagId(Integer tagid);

    //     用于前台页面的标签显示的个数显示！ 查出 根据标签分组后的id，和每种标签的个数,使用VoTag对象来接受！ 因为查询
//    出的结果是，分组的标签id 和 其个数
    public List<VoTag> selectAllBlogTagGroupTagId();

    //     通过标签id查出对应的博客集合  // 主要用于前台标签页面的数据回显
    public List<BlogTag> selectBlogTagByTagId(Integer tagid);
}
